package com.jy.rhin.config;

import lombok.Getter;

@Getter
public enum RhinWSAction {

    IST_PR1("IST-PR1", "居民信息提交", "com.jy.rhin.facade.ws.registration.person.PersonInfoProvider",
            "personRecordFeed",
            "cn.org.chiss.rhin._2015.registration.person.PersonRecordFeed",
            "cn.org.chiss.rhin._2015.registration.person.PersonRecordFeedResponse"),

    IST_PR2("IST-PR2", "居民信息查询", "com.jy.rhin.facade.ws.registration.person.PersonInfoProvider",
            "personRecordQuery",
            "cn.org.chiss.rhin._2015.registration.person.PersonRecordQuery",
            "cn.org.chiss.rhin._2015.registration.person.PersonRecordQueryResponse"),

    TST_PR4("IST-PR4","居民信息订阅",
            "com.jy.rhin.facade.ws.basic.notification.NotificationProducer",
            "subscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),

    TST_PR5("IST-PR5","居民信息变更通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    TST_PR6("IST-PR6","居民信息索引变更通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),
    TST_PR7("IST-PR7","居民信息索引合并通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),


    IST_TR1("IST-TR1", "获取集值", "com.jy.rhin.facade.ws.registration.terminology.ValueSetProvider",
            "retrieveValueSet",
            "cn.org.chiss.rhin._2015.registration.terminology.RetrieveValueSetRequest",
            "cn.org.chiss.rhin._2015.registration.terminology.RetrieveValueSetResponse"),

    IST_TR2("IST-TR2", "查询值集", "com.jy.rhin.facade.ws.registration.terminology.ValueSetProvider",
            "valueSetQuery",
            "cn.org.chiss.rhin._2015.registration.terminology.ValueSetQueryRequest",
            "cn.org.chiss.rhin._2015.registration.terminology.ValueSetQueryResponse"),

    IST_TR3("IST-TR3", "获取值集映射",
            "com.jy.rhin.facade.ws.registration.terminology.ConceptMapProvider",
            "retrieveConceptMap",
            "cn.org.chiss.rhin._2015.registration.terminology.RetrieveConceptMapRequest",
            "cn.org.chiss.rhin._2015.registration.terminology.RetrieveConceptMapResponse"),

    IST_TR4("IST-TR4", "查询值集映射", "com.jy.rhin.facade.ws.registration.terminology.ConceptMapProvider",
            "conceptMapQuery", "cn.org.chiss.rhin._2015.registration.terminology.ConceptMapQueryRequest",
            "cn.org.chiss.rhin._2015.registration.terminology.ConceptMapQueryRequest.ConceptMapQueryResponse"),

    IST_PR3("IST-PR3", "居民交叉索引查询",
            "com.jy.rhin.facade.ws.registration.person.PersonIdentifierProvider",
            "personIdentifierQuery",
            "cn.org.chiss.rhin._2015.registration.person.PersonIdentifierQuery",
            "cn.org.chiss.rhin._2015.registration.person.PersonIdentifierQueryResponse"),

    IST_MIR1("IST-MIR1", "医疗卫生机构信息提交",
            "com.jy.rhin.facade.ws.registration.organization.OrganizationProvider",
            "organizationFeed",
            "cn.org.chiss.rhin._2015.registration.organization.OrganizationFeed",
            "cn.org.chiss.rhin._2015.registration.organization.OrganizationFeedResponse"),

    IST_MIR2("IST-MIR2", "医疗卫生机构信息查询",
            "com.jy.rhin.facade.ws.registration.organization.OrganizationProvider",
            "organizationQuery",
            "cn.org.chiss.rhin._2015.registration.organization.OrganizationQueryRequest",
            "cn.org.chiss.rhin._2015.registration.organization.OrganizationQueryResponseMessage"),

    IST_MIR3("IST-MIR3", "医疗卫生机构信息订阅",
            "com.jy.rhin.facade.ws.basic.notification.NotificationProducer",
            "subscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),
    IST_MIR4("IST-MIR4", "医疗卫生机构信息变更通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_MSR1("IST-MSR1", "医疗卫生人员信息提交", "com.jy.rhin.facade.ws.registration.organization.PractitionerProvider",
            "practitionerFeed",
            "cn.org.chiss.rhin._2015.registration.organization.PractitionerFeed",
            "cn.org.chiss.rhin._2015.registration.organization.PractitionerFeedResponse"),

    IST_MSR3("IST-MSR3", "医疗卫生人员信息订阅", "com.jy.rhin.facade.ws.basic.notification.NotificationProducer",
            "subscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),

    IST_MSR4("IST-MSR4", "医疗卫生机构信息变更通知", "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_MSR2("IST-MSR2", "医疗卫生人员信息查询", "com.jy.rhin.facade.ws.registration.organization.PractitionerProvider",
            "practitionerQuery",
            "cn.org.chiss.rhin._2015.registration.organization.PractitionerQuery",
            "cn.org.chiss.rhin._2015.registration.organization.PractitionerQueryResponse"),

    //文档订阅
    IST_DSP1("IST-DSP1",
            "文档订阅",
            "com.jy.rhin.facade.ws.document.subscribe.DocumentSubAndPub",
            "documentSubscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),

    IST_DSP2("IST-DSP2",
            "取消文档订阅",
            "com.jy.rhin.facade.ws.document.subscribe.DocumentSubAndPub",
            "documentUnSubscribe",
            "org.oasis_open.docs.wsn.b_2.Unsubscribe",
            "org.oasis_open.docs.wsn.b_2.UnsubscribeResponse"),
    IST_DSP3("IST-DSP3",
            "暂停文档订阅",
            "com.jy.rhin.facade.ws.document.subscribe.DocumentSubAndPub",
            "documentPauseSubscribe",
            "org.oasis_open.docs.wsn.b_2.PauseSubscription",
            "org.oasis_open.docs.wsn.b_2.PauseSubscriptionResponse"),

    IST_DSP4("IST-DSP4",
            "恢复文档订阅",
            "com.jy.rhin.facade.ws.document.subscribe.DocumentSubAndPub",
            "documentResumeSubscribe",
            "org.oasis_open.docs.wsn.b_2.ResumeSubscription",
            "org.oasis_open.docs.wsn.b_2.ResumeSubscriptionResponse"),
    IST_DSP5("IST-DSP5",
            "文档发布",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_DSP6("IST-DSP6",
            "文档就绪通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    //健康档案
    IST_DS1("IST-DS1", "提交健康档案",
            "com.jy.rhin.facade.ws.document.storage.DocumentStorage",
            "providerAndRegistryDocumentSet",
            "cn.org.chiss.rhin._2015.document.repository.ProvideAndRegisterDocumentSet",
            ""),
    IST_DS2("IST-DS2", "注册健康档案",
            "com.jy.rhin.facade.ws.document.management.DocumentManagement",
            "registerDocumentSet",
            "cn.org.chiss.rhin._2015.document.management.RegisterDocumentSet",
            ""),
    IST_DS3("IST-DS3", "更新健康档案文档元数据",
            "com.jy.rhin.facade.ws.document.management.DocumentManagement",
            "updateDocumentSet",
            "cn.org.chiss.rhin._2015.document.management.UpdateDocumentSet",
            ""),
    IST_DS4("IST-DS4", "检索健康档案",
            "com.jy.rhin.facade.ws.document.management.DocumentManagement",
            "documentStoredQuery",
            "cn.org.chiss.rhin._2015.document.management.DocumentStoredQuery",
            ""),
    IST_DS5("IST-DS5", "获取健康档案",
            "com.jy.rhin.facade.ws.document.storage.DocumentStorage",
            "retrieveDocumentSet",
            "cn.org.chiss.rhin._2015.document.repository.RetrieveDocumentSet",
            ""),

    IST_ARS8("IST-ARS8", "预约查询",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "reservationQuery",
            "cn.org.chiss.rhin._2015.base.guahao.ReservationQueryType",
            "cn.org.chiss.rhin._2015.base.guahao.ReservationQueryResponseType"),

    IST_ARS9("IST-ARS9", "预约排班信息更新通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_ARS10("IST-ARS10", "预约排班信息删除通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_ARS11("IST-ARS11", "预约申请通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),
    IST_ARS12("IST-ARS12", "预约取消通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),


    IST_ARS1("IST-ARS1", "预约排班信息订阅",
            "com.jy.rhin.facade.ws.basic.notification.NotificationProducer",
            "subscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),

    IST_ARS5("IST-ARS5", "预约排班信息查询",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "scheduleQuery",
            "cn.org.chiss.rhin._2015.base.guahao.ScheduleQueryType",
            "cn.org.chiss.rhin._2015.base.guahao.ScheduleQueryResponseType"),

    IST_ARS6("IST-ARS6", "预约申请",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "reservationRequest",
            "cn.org.chiss.rhin._2015.base.guahao.ReservationType",
            "cn.org.chiss.rhin._2015.base.Identifier"),

    IST_ARS7("IST-ARS7", "预约取消",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "reservationAbort",
            "cn.org.chiss.rhin._2015.base.guahao.ReservationAbortParamType",
            ""),

    IST_ARS2("IST-ARS2", "预约排班信息提交",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "scheduleFeed",
            "cn.org.chiss.rhin._2015.base.guahao.ScheduleListType",
            ""),

    IST_ARS3("IST-ARS3", "预约排班信息更新",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "scheduleRevise",
            "cn.org.chiss.rhin._2015.base.guahao.ScheduleListType",
            ""),

    IST_ARS4("IST-ARS4", "预约排班信息删除",
            "com.jy.rhin.facade.ws.guahao.ScheduleAndReservation",
            "scheduleDelete",
            "cn.org.chiss.rhin._2015.base.guahao.ScheduleIDListType",
            ""),

    IST_TRS3("IST-TRS3", "双向转诊查询", "com.jy.rhin.facade.ws.zhuanzhen.TwoWayReferral",
                     "twoWayReferralQuery", "cn.org.chiss.rhin._2015.base.zhuanzhen.TwoWayReferralQuery",
                     "cn.org.chiss.rhin._2015.base.zhuanzhen.TwoWayReferralQueryResponseType"),
    IST_TRS4("IST-TRS4", "双向转诊回执", "com.jy.rhin.facade.ws.zhuanzhen.TwoWayReferral",
            "twoWayReferralApprove", "cn.org.chiss.rhin._2015.base.zhuanzhen.ReferralApproveType",
            "cn.org.chiss.rhin._2015.base.zhuanzhen.ObjectRef4Approve"),
    IST_TRS2("IST-TRS2", "取消双向转诊申请", "com.jy.rhin.facade.ws.zhuanzhen.TwoWayReferral",
            "twoWayReferralAbort", "cn.org.chiss.rhin._2015.base.zhuanzhen.TwoWayReferralAbortType",
            "cn.org.chiss.rhin._2015.base.zhuanzhen.ObjectRef4Abort"),
    IST_TRS1("IST-TRS1", "双向转诊申请", "com.jy.rhin.facade.ws.zhuanzhen.TwoWayReferral",
            "twoWayReferralRequest", "cn.org.chiss.rhin._2015.base.zhuanzhen.ReferralType",
            "cn.org.chiss.rhin._2015.base.zhuanzhen.ObjectRef4Req"),
    IST_TRS9("IST-TRS9", "双向转诊回执查询", "com.jy.rhin.facade.ws.zhuanzhen.TwoWayReferral",
            "twoWayReferralApproveQuery", "cn.org.chiss.rhin._2015.base.zhuanzhen.TwoWayReferralApproveQuery",
            "cn.org.chiss.rhin._2015.base.zhuanzhen.TwoWayReferralApproveQueryResponseType"),
    IST_TRS6("IST-TRS6",
            "双向转诊回执通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_TRS7("IST-TRS7",
            "双向转诊申请通知",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),
    IST_TRS8("IST-TRS8",
            "取消双向转诊申请通知 ",
            "com.jy.rhin.facade.ws.basic.notification.NotificationConsumer",
            "notify",
            "org.oasis_open.docs.wsn.b_2.Notify",
            ""),

    IST_TRS5("IST-TRS5",
            "双向转诊通知订阅 ",
            "com.jy.rhin.facade.ws.basic.notification.NotificationProducer",
            "subscribe",
            "org.oasis_open.docs.wsn.b_2.Subscribe",
            "org.oasis_open.docs.wsn.b_2.SubscribeResponse"),

    ;

    private String code;
    private String desc;
    private String _interface;
    private String method;
    private String request;
    private String response;


    RhinWSAction(String code, String desc, String _interface, String method, String request, String response) {
        this.code = code;
        this.desc = desc;
        this._interface = _interface;
        this.method = method;
        this.request = request;
        this.response = response;
    }

    public static RhinWSAction getByCode(String code) {
        for (RhinWSAction ws : values()) {
            if (ws.code.equals(code)) {
                return ws;
            }
        }
        return null;
    }
}
